package hutech.ksv.view;

import hutech.ksv.common.KenhSinhVienContants;
import hutech.ksv.entity.ChiTietPNXNTEntity;
import hutech.ksv.entity.ChiTietPNXQAEntity;
import hutech.ksv.entity.PhieuNhanXetNTEntity;
import hutech.ksv.entity.PhieuNhanXetQAEntity;
import hutech.ksv.entity.ThongTinNhanXetEntity;
import hutech.ksv.service.NhanXetService;

import java.io.Serializable;
import java.util.ArrayList;

import javax.annotation.PostConstruct;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

@Component
@Scope("session")
public class NhanXetManagedBean implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private int danhGia;
	private String nhanXet;
	private int loaiPhieu;
	private ArrayList<ThongTinNhanXetEntity> listThongTinNhanXet;
	private String isSinhVien;
	
	public int getDanhGia() {
		return danhGia;
	}

	public void setDanhGia(int danhGia) {
		this.danhGia = danhGia;
	}

	public String getNhanXet() {
		return nhanXet;
	}

	public void setNhanXet(String nhanXet) {
		this.nhanXet = nhanXet;
	}

	public int isLoaiPhieu() {
		return loaiPhieu;
	}

	public void setLoaiPhieu(int loaiPhieu) {
		this.loaiPhieu = loaiPhieu;
	}

	public ArrayList<ThongTinNhanXetEntity> getListThongTinNhanXet() {
		return listThongTinNhanXet;
	}

	public void setListThongTinNhanXet(ArrayList<ThongTinNhanXetEntity> listThongTinNhanXet) {
		this.listThongTinNhanXet = listThongTinNhanXet;
	}

	public String getIsSinhVien() {
		return isSinhVien;
	}

	public void setIsSinhVien(String isSinhVien) {
		this.isSinhVien = isSinhVien;
	}

	@Autowired
	NhanXetService nhanXetService;
	
	@Autowired
	NhaTroManageBean nhaTroManagedBean;
	
	@Autowired
	UserLoginManagedBean userLoginManagedBean;
	
	@PostConstruct
	public void init() {
		listThongTinNhanXet = nhanXetService.loadThongTinNhanXet(nhaTroManagedBean.getMaNT(), userLoginManagedBean.getLoaiNhanXet());
		
		if(userLoginManagedBean.getLoaiTaiKhoan() == KenhSinhVienContants.TAI_KHOAN_SINH_VIEN) {
			isSinhVien = "show";
		} else {
			isSinhVien = "hide";
		}
	}
	
	public void onLoad() {
		nhanXet = "";
		listThongTinNhanXet = nhanXetService.loadThongTinNhanXet(nhaTroManagedBean.getMaNT(), userLoginManagedBean.getLoaiNhanXet());
		
		if(userLoginManagedBean.getLoaiTaiKhoan() == KenhSinhVienContants.TAI_KHOAN_SINH_VIEN) {
			isSinhVien = "show";
		} else {
			isSinhVien = "hide";
		}
	}

	
	public String dangNhanXet() {		
		PhieuNhanXetNTEntity phieuNhanXetNT = new PhieuNhanXetNTEntity();
		phieuNhanXetNT.setTenTKSV(userLoginManagedBean.getUsername());
		phieuNhanXetNT.setDanhGiaNT(1);
		
		int maPhieuNhanXetNT = nhanXetService.themPhieuNhanXetNT(phieuNhanXetNT);
		
		if(maPhieuNhanXetNT > 0) {
			ChiTietPNXNTEntity ctPhieuNhanXetNT = new ChiTietPNXNTEntity();
			ctPhieuNhanXetNT.setMaPNXNT(maPhieuNhanXetNT);
			ctPhieuNhanXetNT.setNoiDungNhanXetNT(nhanXet);
			ctPhieuNhanXetNT.setMaNT(nhaTroManagedBean.getMaNT());
			
			int ketQuaThemNhanXetNT = nhanXetService.themCTPhieuNhanXetNT(ctPhieuNhanXetNT);
			
			if(ketQuaThemNhanXetNT == 0) {
				return "themNhanXetLoi";
			} else {
				return "chiTietNhaTro";
			}
		}
		return "";
	}
	

}
